package com.iscas.tech.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iscas.tech.entity.AtScideman;
import com.iscas.tech.vo.AtMdbusyValueQueryVo;
import com.iscas.tech.vo.AtScidemanQueryVo;
import com.iscas.tech.vo.MdWithTechNeeds;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 科技需求表 Mapper 接口
 *
 * @author yangyi
 * @since 2020-10-26
 */
@Repository
public interface AtScidemanMapper extends BaseMapper<AtScideman> {

    /**
     * @param createTitle 记录人ID
     * @return 获取记录人姓名
     */
    String getCreateName(@Param("createTitle") Integer createTitle);

    /**
     * @param publisherId 发布人ID
     * @return 获取发布人真实姓名
     */
    String getPublisherName(@Param("publisherId") Integer publisherId);

    /**
     * @param publisherId 发布人ID
     * @return 获取发布人真实姓名
     */
    String getPublisherPhone(@Param("publisherId") Integer publisherId);

    /**
     * @param businessId 业务ID
     * @return 查询标签分类
     */
    List<AtMdbusyValueQueryVo> getTagList(@Param("businessId") Integer businessId);

    /**
     * @param offset 数据偏移量
     * @param limit  最大数据量
     * @param audit  审核状态（0-未审核 | 1-已审核）
     * @return 分页获取科技需求列表
     */
    List<AtScidemanQueryVo> getTechNeedsPageList(@Param("offset") Long offset,
                                                 @Param("limit") Integer limit,
                                                 @Param("audit") Integer audit);

    /**
     * @param audit 审核状态（0-未审核 | 1-已审核）
     * @return 科技需求列表数据总数
     */
    Long getTechNeedsCount(@Param("audit") Integer audit);

    /**
     * @param techNeeds 科技需求信息
     * @return 新增结果
     */
    Boolean saveTechNeeds(@Param("techNeeds") MdWithTechNeeds techNeeds);

    /**
     * 获取科技需求详情
     *
     * @param id 科技需求ID
     * @return 科技需求详情
     */
    AtScidemanQueryVo get(@Param("id") Long id);

    /**
     * @param id 科技需求ID
     * @return 删除科技需求
     */
    Boolean deleteTechNeeds(@Param("id") Long id);

    /**
     * @param id 科技需求主键ID
     * @return 审核科技需求
     */
    Boolean checkTechNeeds(@Param("id") Long id);
}
